package tech.aistar.day09;

/**
 * 本类用来演示:
 *
 * @author: success
 * @date: 2021/3/18 3:53 下午
 */
public class IntegerDemo {
    public static void main(String[] args) {
        Integer i = new Integer(10);
        System.out.println(i+5);//15

        //数字形式的字符串,
        //否则抛出java.lang.NumberFormatException数字格式化失败异常
        Integer j = new Integer("10");
        System.out.println(j);

        //1. 封箱 - 基本类型转换成包装类型的过程
        Integer m = 10;
        //2. 解箱 - 包装类型转换成基本类型的过程
        int n = m;

        //比较...
        Integer x = new Integer(10);
        System.out.println(i == x);//false
        System.out.println(x == m);//false

        Integer x1 = 127;
        Integer x2 = 127;
        System.out.println(x1 == x2);

        //返回true - 数字范围[-128,127]
        Integer m1 = Integer.valueOf(127);
        Integer m2 = Integer.valueOf(127);
        System.out.println(m1 == m2);

        Integer y1 = 1000;
        //Integer->int类型
        //int t = y1.intValue();
        int y2 = 1000;
        //System.out.println(t == y2);

        //指令底层 - // Method java/lang/Integer.intValue:()I

        //当包装类型和对应的基本类型进行比较的时候
        //那么底层会将包装类型->基本类型
        //y1.intValue()
        System.out.println(y1 == y2);//true

        //java.lang.Long

        //long tt = 12;//ok
        //System.out.println(s == t);

        //valueOf
        //int->Integer

        //String->Integer
        //java.lang.NumberFormatException - 数字形式的字符串
        Integer o1 = Integer.valueOf("124");
        System.out.println(o1);

        //static int parseInt(String s);
        //String类型->int类型
        int n1 = Integer.parseInt("10");//java.lang.NumberFormatException
        System.out.println(n1);

        //关于进制换算的方法
        System.out.println(Integer.toBinaryString(10));//1010

        //十进制->八进制
        System.out.println(Integer.toOctalString(26));

        //十进制->十六进制
        System.out.println(Integer.toHexString(176));

        //Integer->String类型
        String s = o1.toString();
        System.out.println(s);

    }
}
